Industrial controllers are special purpose computers used for controlling industrial processes, manufacturing equipment, and other factory automation. In accordance with a control program, the industrial controller measures one or more process variables or inputs reflecting the status of a controlled process, and may change outputs affecting control of the process. The inputs and outputs may be binary, (e.g., ON or OFF), as well as analog inputs and outputs assuming a continuous range of values. The control program may be executed in a series of execution cycles with batch processing capabilities.
An industrial controller may be customized to a particular process by writing control software that may be stored in the controller's memory and/or by changing the hardware configuration of the controller to match the control task. Separating the industrial controller into a number of control modules, each of which performs a different function, facilitates controller hardware configuration. Particular control modules needed for the control task may then be connected together on a common backplane within a rack. The control modules may include processors, power supplies, network communication modules, and I/O modules exchanging input and output signals directly with the controlled process. Data may be exchanged between modules using a backplane communications bus, which may be serial or parallel. A typical hardware modification may involve adding additional I/O modules so as to be able to monitor and/or control additional equipment.
Various control modules of the industrial controller may be spatially distributed along a common communication link in several racks. Certain I/O modules may thus be located in close proximity to a portion of the control equipment, and away from the remainder of the controller. Data is communicated with these remote modules over a common communication link, or network, wherein all modules on the network communicate using a standard communications protocol.
Precise coordination of actions between separated functional modules of a large industrial controller is complicated. One particularly demanding application is the synchronized measurement and/or control of electrical waveforms at spatially separate points, such as associated with motor control or to characterize electrical power. Here, control resolution on the order of a few microseconds is desirable. Yet even with high speed communication links, the time required to arbitrate for control of the communication link for transmission of a coordinating message, and the time required to translate a message between the different communication links that may separate the modules, via one or more bridges, may exceed the desired precision.
For example, U.S. Pat. No. 5,887,029 discloses the use of a coordinated system time for synchronizing messages communicated over a communications link between modules. The coordinated actions are implemented based on a time conditional command that is received by each component (or control module) that is to execute the command prior to a selected execution time. The coordinated system time further may be employed to time stamp triggering events for use in coordinating subsequent actions based on the triggering events.
While U.S. Pat. No. 5,887,029 discloses an approach that facilitates coordination of triggering events, such coordination is based on additional overhead at the controller for initiating the command message for initiating the time coordinated event. The additional overhead may be undesirable in certain circumstances, such as when continued synchronized measurements of process characteristics with multiple modules may be desired. As a result, an improved system and method for synchronizing sampling events or applications of outputs at one or more of functional modules is desired.